Fault-tolerant computing systems often employ data storage techniques for recovery of data lost as a result of a disk drive failure. These data storage techniques often involve a redundant array of independent disks (RAID). In some of these data storage techniques, a disk drive controller performs a data stripe operation by dividing data into data blocks and generating parity data based on the data blocks. In this way, the disk drive controller generates redundancy data based on the data blocks. The disk drive controller distributes the data blocks and the parity data among an array of disk drives. In event of a hardware failure of a disk drive in the array, the disk drive controller reconstructs the data in the failed disk drive based on the data stored in the other disk drives of the array, and stores the reconstructed data into a replacement disk drive.
Because generation of parity data in a RAID operation is often a computationally intensive task, some types of disk drive controllers include a dedicated processor for generating parity data. In these types of disk drive controllers, the dedicated processor stores data blocks into individual data buffers of the disk drive controller, executes computing instructions to generate parity data, and stores the parity data into yet another data buffer. Although use of a dedicated processor for generating parity data generally improves throughput of a disk drive controller, generation of parity data is still a performance bottleneck in many disk drive controllers. Moreover, the data buffers consume a considerable amount of area and power in integrated circuit implementations of the disk drive controller.